home *** CD-ROM | disk | FTP | other *** search
/ Winzipper / Winzipper_ISO.iso / programming / oracle7 7.2 / DB / UTIL72 / CATDEFER.SQL < prev    next >
Encoding:
Text File  |  1995-05-09  |  8.1 KB  |  216 lines

  1. rem 
  2. rem $Header: catdefer.sql 7020200.1 95/02/15 18:32:54 cli Generic<base> $_er.sql,v 1.1.710.4 94/01/24 12:45:49 rjenkins:repint Exp $ 
  3. rem 
  4. Rem  Copyright (c) 1992 by Oracle Corporation 
  5. Rem    NAME
  6. Rem      catdefer.sql - catalog of deferred rpc queues
  7. Rem    DESCRIPTION
  8. Rem      catalog of deferred rpc queues
  9. Rem      This file contains sql which creates the base tables
  10. Rem      used to store deferred remote procedure calls for used in
  11. Rem      transaction replication.
  12. Rem      Tables:
  13. Rem         defTran
  14. Rem         defTranDest
  15. Rem         defError
  16. Rem         defCallDest
  17. Rem         defDefaultDest
  18. Rem         defCall
  19. Rem         defSchedule
  20. Rem    RETURNS
  21. Rem 
  22. Rem    NOTES
  23. Rem      Tables created in this file are owned by user system (not) sys
  24. Rem      views are owned by sys and a synonym owned by sys is created to
  25. Rem      hoopefully preserve code compatibility
  26. REm      If this change works, no upgrade script is needed.
  27. Rem      The defcalldest view defined in this file is replaced with a differend
  28. Rem      view by the catrepc.sql script.  If the repcat tables are installed,
  29. Rem       The catrecc.sql script should always be run after this script is run.
  30. Rem 
  31. Rem      Tables are created in catdefrt.sql.  All other objects created here
  32. Rem 
  33. Rem    MODIFIED   (MM/DD/YY)
  34. Rem     dsdaniel   01/23/95 -  merge changes from branch 1.1.710.11
  35. Rem     dsdaniel   01/05/95 -  need extra at sign
  36. Rem     dsdaniel   12/21/94 -  merge changes from branch 1.1.710.8&9&10
  37. Rem     dsdaniel   12/08/94 -  revise defcalldest, deftrandest views
  38. Rem     dsdaniel   11/22/94 -  split out table creations
  39. Rem     dsdaniel   11/18/94 -  deftran-ectomy, deftrandest-ectomy
  40. Rem     dsdaniel   11/17/94 -  merge changes from branch 1.1.710.7
  41. Rem     dsdaniel   11/09/94 -  defcalldest, deftrandest changes
  42. Rem     dsdaniel   08/04/94 -  make it a cluster (again)
  43. Rem     dsdaniel   08/04/94 -  create a version without the cluster
  44. Rem     dsdaniel   08/03/94 -  eliminate ON DELETE CASCADE *again
  45. Rem     dsdaniel   08/02/94 -  make it a cluster
  46. Rem     dsdaniel   07/28/94 -  restore ON DELETE CASCADE
  47. Rem     dsdaniel   07/27/94 -  eliminate ON DELETE CASCADE
  48. Rem     dsdaniel   07/19/94 -  export support changes
  49. Rem     rjenkins   03/22/94 -  merge changes from branch 1.1.710.4
  50. Rem     rjenkins   01/19/94 -  merge changes from branch 1.1.710.3
  51. Rem     dsdaniel   01/18/94 -  merge changes from branch 1.1.710.2
  52. Rem     rjenkins   01/17/94 -  changing jq to job
  53. Rem     rjenkins   12/17/93 -  creating job queue
  54. Rem     dsdaniel   10/31/93 -  merge changes from branch 1.1.710.1
  55. Rem     dsdaniel   10/28/93 -  deferred rpc dblink security
  56. Rem                         -  also removed table drops, since shouldnt
  57. Rem                         -  loose data on upgrade
  58. Rem     dsdaniel   10/26/93 -  merge changes from branch 1.1.400.1
  59. Rem     dsdaniel   10/10/93 -  Creation from dbmsdefr
  60. rem create base tables
  61.  
  62. -- Sys is granted priviledges through roles, which don't apply to
  63. -- packages owned by sys.  Explicitly grant permissions.
  64. grant select any table to sys with admin option;
  65. grant insert any table to sys;
  66. grant update any table to sys;
  67. grant delete any table to sys;
  68.  
  69. DROP VIEW deferror;
  70. DROP VIEW deferrcount;
  71. DROP VIEW deftrandest;
  72. DROP VIEW defcalldest;
  73. DROP VIEW defcall;
  74. DROP VIEW deftran;
  75. DROP VIEW defschedule;
  76. DROP VIEW  defdefaultdest;
  77. rem drop existing synonyms from sys -system
  78.  
  79. DROP SYNONYM def$_tran;
  80. DROP SYNONYM def$_trandest;
  81. DROP SYNONYM def$_call;
  82. DROP SYNONYM def$_calldest;
  83. DROP SYNONYM def$_error;
  84. DROP SYNONYM def$_defaultdest;
  85. DROP SYNONYM def$_schedule;
  86.  
  87. --
  88. --
  89. @@catdefrt  
  90. --
  91. --
  92. CREATE SYNONYM def$_call FOR system.def$_call;
  93.  
  94. -- The old def$_tran tabl is a selection of the first def$_call record in
  95. -- each transaction
  96. DROP VIEW def$_tran;
  97. CREATE VIEW def$_tran AS
  98.   SELECT deferred_tran_id, deferred_tran_db,
  99.          origin_tran_id, origin_tran_db,
  100.          origin_user_id, origin_user, delivery_order, 
  101.          destination_list, start_time, commit_comment
  102.     FROM def$_call 
  103.     WHERE buffer_number = 1
  104.     AND destination_list IS NOT NULL
  105. /
  106.  
  107. CREATE SYNONYM def$_calldest FOR system.def$_calldest;
  108. CREATE SYNONYM def$_schedule FOR system.def$_schedule;
  109. CREATE SYNONYM def$_error FOR system.def$_error;
  110.  
  111. CREATE VIEW defschedule  AS
  112.   SELECT s.dblink, s.job, j.interval, next_date, j.last_date, s.disabled,
  113.          s.last_txn_count, s.last_error, s.last_msg
  114.     FROM system.def$_destination s, sys.job$ j where s.job = j.job(+);
  115. /
  116. DROP PUBLIC SYNONYM defschedule;
  117. CREATE PUBLIC SYNONYM defschedule FOR defschedule;
  118.  
  119. CREATE VIEW deferror AS
  120.   SELECT deferred_tran_db, deferred_tran_id, callno, destination, 
  121.          error_time, error_number, error_msg 
  122.     FROM system.def$_error;
  123. /
  124. DROP PUBLIC SYNONYM deferror;
  125. CREATE PUBLIC SYNONYM deferror for deferror;
  126.  
  127. CREATE VIEW deferrcount AS
  128.   SELECT count(1) errcount, destination 
  129.     FROM deferror GROUP BY destination;
  130. /
  131. DROP PUBLIC SYNONYM deferrcount;
  132. CREATE PUBLIC SYNONYM deferrcount for deferrcount;
  133. GRANT SELECT ON deferrcount TO PUBLIC;
  134.  
  135. CREATE VIEW deftran AS
  136.   SELECT deferred_tran_id, deferred_tran_db,
  137.          NVL(origin_tran_id,deferred_tran_id) origin_tran_id, 
  138.          NVL(origin_tran_db,deferred_tran_db) origin_tran_db,
  139.          NVL(u.name,t.origin_user) origin_user, delivery_order, 
  140.          destination_list, start_time, commit_comment
  141.     FROM system.def$_call t, sys.user$ u
  142.     WHERE u.user# (+)= t.origin_user_id
  143.       AND t.destination_list IS NOT NULL
  144.       AND t.buffer_number =1;
  145. /
  146. DROP PUBLIC SYNONYM deftran;
  147. CREATE PUBLIC SYNONYM deftran FOR deftran;
  148.  
  149. CREATE VIEW defcalldest AS
  150.   SELECT  C.callno, C.deferred_tran_id, C.deferred_tran_db, C.dblink
  151.     FROM system.def$_calldest C;
  152. /
  153. Rem The defcalldest view defined above is replaced in catrepc
  154. DROP PUBLIC SYNONYM defcalldest;
  155. CREATE PUBLIC SYNONYM defcalldest for defcalldest;
  156.  
  157. CREATE VIEW deftrandest AS
  158.   SELECT UNIQUE deferred_tran_id, deferred_tran_db, dblink
  159.     FROM sys.defcalldest
  160.     WHERE NOT EXISTS (
  161.       SELECT NULL
  162.         FROM def$_error
  163.         WHERE sys.defcalldest.deferred_tran_db=def$_error.deferred_tran_db
  164.           AND sys.defcalldest.deferred_tran_id=def$_error.deferred_tran_id
  165.           AND sys.defcalldest.dblink = def$_error.destination)
  166. /
  167. Rem The deftrandest view defined above is replaced in catrepc.
  168. DROP PUBLIC SYNONYM deftrandest;
  169. CREATE PUBLIC SYNONYM deftrandest FOR deftrandest;
  170.  
  171. CREATE VIEW defcall AS
  172.   SELECT  callno, deferred_tran_db, deferred_tran_id, schemaname, packagename,
  173.           procname, argcount 
  174.     FROM system.def$_call
  175.     WHERE buffer_number = 1;
  176. /
  177. DROP PUBLIC SYNONYM defcall;
  178. CREATE PUBLIC SYNONYM defcall FOR defcall;
  179.  
  180. --  Create table of default nodes for replication targets
  181. --  this table is managed by calls in dbms_defer_sys
  182.  
  183. CREATE SYNONYM def$_defaultdest FOR system.def$_defaultdest;
  184. CREATE VIEW defdefaultdest AS
  185.   SELECT * from system.def$_defaultdest;
  186. /
  187. DROP PUBLIC SYNONYM defdefaultdest;
  188. CREATE PUBLIC SYNONYM defdefaultdest for defdefaultdest;
  189.  
  190. REM Set up export actions for deferred rpc tables.
  191. rem delete existing export data
  192.  
  193. DELETE FROM expact$ WHERE name like 'DEF%';
  194.  
  195. insert into expact$ (owner, name, func_schema, func_package, func_proc, code)
  196. values('SYSTEM','DEF$_CALL','SYS','DBMS_DEFER_IMPORT_INTERNAL',
  197.         'QUEUE_EXPORT_CHECK',1);
  198. /
  199. insert into expact$ (owner, name, func_schema, func_package, func_proc, code)
  200. values('SYSTEM','DEF$_CALLDEST','SYS','DBMS_DEFER_IMPORT_INTERNAL',
  201.         'QUEUE_EXPORT_CHECK',1);
  202. /
  203. insert into expact$ (owner, name, func_schema, func_package, func_proc, code)
  204. values('SYSTEM','DEF$_ERROR','SYS','DBMS_DEFER_IMPORT_INTERNAL',
  205.         'QUEUE_EXPORT_CHECK',1);
  206. /
  207. insert into expact$ (owner, name, func_schema, func_package, func_proc, code)
  208. values('SYSTEM','DEF$_DEFAULTDEST','SYS','DBMS_DEFER_IMPORT_INTERNAL',
  209.         'QUEUE_EXPORT_CHECK',1);
  210. /
  211. insert into expact$ (owner, name, func_schema, func_package, func_proc, code)
  212. values('SYSTEM','DEF$_DESTINATION','SYS','DBMS_DEFER_IMPORT_INTERNAL',
  213.         'QUEUE_EXPORT_CHECK',1);
  214. /
  215. COMMIT;
  216.